﻿using System;
using System.Drawing;
using System.Windows.Forms;

namespace Baustein {
    public partial class Baustein : Form {
        Graphics grafik;
        CBaustein baustein;
        COder Oder;
        CUnd Und;
        cGezeichneterBaustein gzB3, gzB2, gzB;
        public Baustein() {
            InitializeComponent();
            grafik = pBoxBaustein.CreateGraphics();
        }
        private void btnZeichnen_Click(object sender, EventArgs e) {
            grafik.Clear(Color.WhiteSmoke);
            try {
                Convert.ToInt32(tBoxEingaenge.Text);
            } catch (Exception) {
                return;
            }
            int iAnzahlEin = Convert.ToInt32(tBoxEingaenge.Text);
            baustein = new CBaustein(iAnzahlEin, "");
            baustein.BInvert[0] = true;

            gzB = new cGezeichneterBaustein(grafik, baustein, 95, 20, 200, 100);

            gzB.berechneLinie();
            Und = new CUnd(iAnzahlEin, "&");

            gzB2 = new cGezeichneterBaustein(grafik, Und, 95, 320, 150, 50);

            gzB2.berechneLinie();
            Und.calc();
            Oder = new COder(iAnzahlEin, ">=1");

            gzB3 = new cGezeichneterBaustein(grafik, Oder, 395, 20, 100, 20);

            gzB3.berechneLinie();
            Oder.calc();
            pBoxBaustein.Invalidate();
        }
        private void click(object sender, MouseEventArgs e) {
            try {
                if (gzB.check(e) == true) { pBoxBaustein.Invalidate(); }
                if (gzB2.check(e) == true) { pBoxBaustein.Invalidate(); }
                if (gzB3.check(e) == true) { pBoxBaustein.Invalidate(); }
            } catch (Exception) {
                return;
            }
        }
        private void pBoxBaustein_Paint(object sender, PaintEventArgs e) {
            if (gzB != null) {
                gzB.Zeichnen();
                gzB2.Zeichnen();
                gzB3.Zeichnen();
            }
        }
    }
}